行为型模式-模板方法模式
模板方法模式
模板方法模式就是定义一个算法的骨架,将算法分解为一系列步骤, 然后将这些步骤改写为方法, 最后在 “模板方法” 中依次调用这些方法。
classDiagram
AbstractClass <|-- ConcreteClassA
AbstractClass <|-- ConcreteClassB
AbstractClass: <<abstract>>
AbstractClass: +templateMethod()
AbstractClass: +primitiveOperationA()
AbstractClass: +primitiveOperationB()
ConcreteClassA: +primitiveOperationA()
ConcreteClassA: +primitiveOperationB()
ConcreteClassB: +primitiveOperationA()
ConcreteClassB: +primitiveOperationB()
就是定义一个抽象模板,这个模板按顺序调用方法
public abstract class AbstractClass {
public abstract void primitiveOperationA();
public abstract void primitiveOperationB();
// 模板方法禁止重写
// 它里面给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,它们都推迟到子类实现
public final void templateMethod() {
System.out.println("模板固定的操作");
primitiveOperationA();
primitiveOperationB();
}
}
具体的实现类
public class ConcreteClassA extends AbstractClass {
@Override
public void primitiveOperationA() {
System.out.println("具体类 A 方法的实现 A");
}
@Override
public void primitiveOperationB() {
System.out.println("具体类 A 方法的实现 B");
}
}
// ConcreteClassB 同理...
// Demo
public static void main(String[] args) {
AbstractClass c = new ConcreteClassA();
c.templateMethod();
}